package com.foreknow.example;

/**
 * 订单类
 * 
 * @author ttc
 *
 */
public class Order {
	private String orderId;//订单编号
	private double total;//总额（是计算出来的，不应该写到构造器中初始化）
	private OrderItem[] items;//订单项列表
	
	public Order(String orderId) {
		this.orderId = orderId;
		items = new OrderItem[3];
	}

	public String getOrderId() {
		return orderId;
	}

	public void setOrderId(String orderId) {
		this.orderId = orderId;
	}

	//获取总额的方法
	public double getTotal() {
		//调用计算总额的方法
		 calTotal() ;
		return total;
	}

	public void setTotal(double total) {
		this.total = total;
	}

	public OrderItem[] getItems() {
		return items;
	}
	/**
	 * 指定一个订单项OrderItem并通过下标保存到数组中
	 * @param
	 */
	public void setItems(OrderItem item,int i) {
		this.items[i] = item;
	}
	
	/**
	 * 计算总额的方法
	 * 总额 = 数量 * 单价
	 * @return
	 */
	public void calTotal() {
		//计算总额
		double total = 0.0;
		//1.要先遍历数组items，每遍历一次就要获取到数组中的一个OrderItem对象，然后就可以获取到数量以及单价了。
		for(int i = 0;i<items.length;i++){
			total+=items[i].getNum()*items[i].getPrice();
		}
		//2.要将总额赋值给类变量total
		this.total = total;
	}
}
